package com.wyh.service.groupOne.resource;


import com.github.pagehelper.PageInfo;
import com.wyh.domain.dto.groupOne.resource.*;

import com.wyh.domain.po.groupOne.organization.MasterDataOrganization;
import com.wyh.domain.po.groupOne.resource.MasterDataResource;
import com.wyh.domain.vo.groupOne.utils.MasterDataTreeNode;

import java.util.List;

public interface MasterDataResourceService {

    /**
     * 新增
     */
    int insert(MasterDataResource masterDataResource);
    /**
     * 查询所有
     */
    List<MasterDataResource> selectAll(MasterDataResource masterDataResource);
    /**
     * 修改
     */
    int updateById(MasterDataResource masterDataResource);
    /**
     * 删除
     */
    int deleteById(Integer id);

    List<ResourceDetailDTO> getAllDetails(MasterDataResourceTypeDTO masterDataResourceTypeDTO);

    List<MasterDataOrganization> selectAllOrganization(Integer id);

    // 生成资源管理菜单树的业务方法
    List<MasterDataTreeNode> generateResourceTree();

    List<MasterDataTreeNode> searchResourceTree(String keyword);

    // 条件查询
    public PageInfo<ResourceDetailDTO> selectByCondition(MasterDataResource masterDataResource);
    //拆分资源
    void splitResource(ResourceSplitDTO resourceSplitDTO);

    // 根据资源id查询缴费记录的业务方法
    List<PaymentHistory> getAllCharging(PaymentHistory paymentHistory);

    // 根据资源id查询详情中的三表信息的业务方法
    List<ThreeMeterInfo> getThreeMeterInfos(Integer id);

    // 停用（删除）三表信息的业务方法
    int deleteThreemeterById(Integer threemeterId);

    // 换表的方法
    int replaceThreemeter(ThreeMeterInfo threeMeterInfo);
    //获取当前楼层下所有未接房的资源
    List<MasterDataResource> selectLayerAllResource(Integer id);

    void combineResource(ResourceCombineDTO resourceCombineDTO);
}
